perm filename ALLHEU[DIS,DBL]1 blob sn#215675 filedate 1976-05-17 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.ASEC(AM's Heuristics)
C00004 00003	.ASSECP(Heuristics for dealing with Anything)
C00005 00004	.ASSECP(Heuristics for dealing with Any-concept)
C00008 00005	.ASSECP(Heuristics for dealing with Operations)
C00011 00006	.ASSECP(Heuristics for dealing with Predicates)
C00014 ENDMK
C⊗;
.ASEC(AM's Heuristics)

This appendix  lists all the  heuristics with  which AM is  initially
provided.    They are  organized  by concept,  most  general concepts
first.  Within a concept, they are organized by facet:

.BN

⊗8#⊗* Fillin: rules for filling in new entries on various facets.

⊗8#⊗* Check:  rules  for  patching  up existing  entries  on  various
facets.

⊗8#⊗*  Suggest: rules  which propose  new tasks  to break  AM out  of
stagnant loops.

.E

<<Should the heurs be duplicated in the ALLCON appendix, too?>

Each heuristic is presented in English translation. Whenever there is
a very tricky, non-obvious, or brilliant translation  of some English
clause into LISP,  a brief note will follow about  how that is coded.
Also, for each rule,  is listed some example(s)  of its use, and  its
overall importance.   If the  rule is actually  used within  the main
portion  of this  document, the  relevant  page(s) are  listed within
square brackets.  Concepts which  have no heuristics are not  present
in this appendix.

.ASSECP(Heuristics for dealing with Anything)
.ASSECP(Heuristics for dealing with Any-concept)

⊗5 Fillin⊗*

All these rules actually can be viewed as beginning: "If the current
task is (Fillin Examples of X), where X is any concept...". 
This extra "precondition" will not be repeated below, for each rule.

.BH

λλ To  fill in  examples of  X, where  X is a  kind of  Y (for  some more
general concept Y),

Check the examples of Y; some of them may be examples of X as well.

.ES

For the task of filling in  examples of Primes, this rule would  have
AM notice  that Primes is a  kind of Number, and  therefore look over
all the known examples of Number.

.BH

λλ If some (but not most) examples  of X are also examples of Y (for some
concept Y),

Create a new concept defined as the intersection of those 2  concepts
(X and Y).

.ES

When AM  notices that some  primes are palindromic,  this rule will  create a
brand new  concept, defined as the set of  numbers which are both palindromic
and prime.

.BH

If very few examples of X are found,


Then add  the following task  to the agenda: "Generalize  the concept
X",  for the following reason:  "X's are quite  rare; a slightly less
restrictive concept might be more interesting".

.ES

Of course, AM  contains a precise meaning for  the phrase "very few".
When AM looks  for primes
among examples of already-known kinds of numbers,
it will find  dozens of non-examples for every  example of a prime it
uncovers.   "Very few" is  thus naturally  implemented as a
statistical confidence level.


⊗5 Suggest⊗*

⊗5 Check⊗*

.ASSECP(Heuristics for dealing with Operations)

.BH

λλ If the current task was (Fill-in examples of F),

and F is an operation from domain space A into range space B,

and more than 100 items are known examples of A (in the domain of F),

and more than 10 range items (in B) were found by applying F to these
domain items,

and at least  1 of these range items is a distinguished member (esp: an
extremum) of B,

.OOO

Then (for each such distinguished member "b"εB) create the following new concept:

.E


.WBOX(16,8)
MBOX Name: F-Inverse-of-b $
MBOX Definition: λ (x) ( F(x) is b ) $
MBOX Generalization: A $
MBOX Worth: Average(Worth(A), Worth(F), Worth(B), Worth(b), ||Examples(B)||) $
MBOX Interest: Any conjecture involving both this concept and either F or Inverse(F) $
.EBOX


.BH ONCE INDENT 4,8,0

In case  the user  asks, the  reason for  doing this is:  
"Worthwhile
investigating those A's  which have an unusual F-value, namely, those
whose F-value is b"

The total  amount of time  to spend  right now  on all  of these  new
concepts is computed as: 

.ONCE INDENT 8

Half the  remaining cpu time in  the current
task's time quantum.

.ES

This rule says to investigate the inverse image of an unusual
item b, under the interesting operation f. When b=2 and
f=number-of-divisors-of, this rule leads to the definition
of prime numbers.


.ASSECP(Heuristics for dealing with Predicates)

Each of these heuristics can be assumed to be prefaced by a 
claus of the from "If the current task is to deal with concept X,
where X isa Predicate,...". This will be repeated below, for each rule.

⊗5 Fillin⊗*

.BH

If the current task was (Fill-in examples of X),

and X is a predicate,

and more than 100 items are known in the domain of X,

and at least 10 cpu seconds were spent trying to randomly instantiate
X,

and the ratio of successes/failures is both >0 and less than .05

.OOO

Then  add the following task to  the agenda: (Fill-in generalizations
of X), for the following reason:

"X is rarely satisfied; a slightly less restrictive  concept might be
more interesting".

This  reason's  rating  is  computed  as  three times  the  ratio  of
nonexamples/examples found.

.ES

This rule says to generalize a predicate if it rarely succeeds (returns T).
One use for this was when Equality was found to be quite rare; the resultant
generalizations did indeed turn out to be more valuable (numbers).
A similar use was found for predicates which tested for identical equality
of two angles, of two triangles, and of two lines. Their generalizations
were also valuable (congruence, similarity, parallel, equal-measure).